# 文件流：就算源或者目标都是文件的流   -- 要把某个数据写入文件 ，把某个文件读出某个数据
# open这个函数打开文件
# 打开文件流 文件对象 = open(目标文件,访问模式)
# 读 -- read ; 写 -- write ； seek();  关闭 -- close

# 打开文件流
# 读
# f = open('test.txt', mode='r', encoding='gbk')
# f_all = f.read()  # 读取全部字符
# f_10 = f.read(10)  # 获取前10个字符
# f_line_1 = f.readline()  # 只读取一行
# f_line_all = f.readlines()  # 获取所有行
# print(f_all)
# print(f_10)
#
# f.close()

# 写
# wf = open('test2.txt','w',encoding='gbk')
# # 忘文件中写3个hello
# for i in range(3):
#     print(f'当前指针的位置：{wf.tell()}')
#     wf.write('hello\n')
#
# wf.close()

# 指针的移动操作
# # 在第一个hello的后面加一个world
# wf = open('test2.txt','r+',encoding='gbk') # 在指定位置写入会造成覆盖
# # 把指针移动到第一个hellO后面
# wf.seek(5,0)
# # 把第一个hello后面的数据先读出来，防止覆盖
# after = wf.read() # 读完之后指针又到文件末尾
# # 再把指针移动到第一个hellO后面
# wf.seek(5,0)
# wf.write('word'+after)
# wf.close()

# 资源使用完之后需要释放资源 with 语句会自动释放
# with语句操作文件流
# with open('test3.txt','w+',encoding='gbk') as f:
#     for i in range(10):
#         f.write('hello\n')